package com.minglv.mini.service.impl;


import com.minglv.mini.domain.UserFavorites;
import com.minglv.mini.mapper.UserFavoritesMapper;
import com.minglv.mini.service.IUserFavoritesService;
import com.minglv.mini.tools.JWTUtils;
import com.minglv.mini.tools.MiniResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
//@DataSource(DataSourceType.SLAVE)
public class UserFavoritesServiceImpl  implements  IUserFavoritesService{
    @Autowired
    private UserFavoritesMapper userFavoritesMapper;

    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public UserFavorites selectUserFavoritesById(Long id)
    {
        return userFavoritesMapper.selectUserFavoritesById(id);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param userFavorites 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<UserFavorites> selectUserFavoritesList(UserFavorites userFavorites)
    {
        return userFavoritesMapper.selectUserFavoritesList(userFavorites);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param userFavorites 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertUserFavorites(UserFavorites userFavorites)
    {
        return userFavoritesMapper.insertUserFavorites(userFavorites);
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param userFavorites 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateUserFavorites(UserFavorites userFavorites)
    {
        return userFavoritesMapper.updateUserFavorites(userFavorites);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteUserFavoritesByIds(Long[] ids)
    {
        return userFavoritesMapper.deleteUserFavoritesByIds(ids);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteUserFavoritesById(Long id)
    {
        return userFavoritesMapper.deleteUserFavoritesById(id);
    }

    @Override
    public List<Map> getFavoritesActivityList(Long userId) {
        return userFavoritesMapper.getFavoritesActivityList(userId);
    }

    @Override
    public List<Map> getFavoritesGoodsList(Long userId) {
        return userFavoritesMapper.getFavoritesGoodsList(userId);
    }

    @Override
    public Object getCollect(String token,Integer type){
        Long userId = JWTUtils.getUserid(token);
        if (ObjectUtils.isEmpty(userId)) {
            Map reMap = new HashMap();
            reMap.put("code",401);
            reMap.put("msg","Token过期,或无此用户");
            return reMap;
        }else {
            if (type == 1) {
                return new MiniResult(200,"获取成功",this.getFavoritesActivityList(userId)) ;
            }else{
                return new MiniResult(200,"获取成功",this.getFavoritesGoodsList(userId)) ;
            }
        }
    }

}
